അപ്ലിക്കേഷൻ പെർഫോമൻസ്, യൂസർ എക്സ്പീരിയൻസ്, പ്രാരംഭ ലോഡ് സമയം എന്നിവ ഗണ്യമായി മെച്ചപ്പെടുത്താൻ കമ്പോണന്റ് കോഡ് സ്പ്ലിറ്റിംഗോടുകൂടിയ റിയാക്ട് ലേസി ലോഡിംഗ് എങ്ങനെ നടപ്പാക്കാമെന്ന് പഠിക്കുക.
റിയാക്ട് ലേസി ലോഡിംഗ്: കമ്പോണന്റ് കോഡ് സ്പ്ലിറ്റിംഗ് ഉപയോഗിച്ച് പെർഫോമൻസ് വർദ്ധിപ്പിക്കാം
ഇന്നത്തെ വെബ് ഡെവലപ്മെൻ്റ് രംഗത്ത്, പെർഫോമൻസ് പരമപ്രധാനമാണ്. വേഗതയേറിയ ലോഡിംഗ് സമയവും സുഗമമായ പ്രവർത്തനങ്ങളും ഉപയോക്താക്കൾ പ്രതീക്ഷിക്കുന്നു. വലിയ ജാവാസ്ക്രിപ്റ്റ് ബണ്ടിലുകൾ, പ്രത്യേകിച്ച് സങ്കീർണ്ണമായ റിയാക്ട് അപ്ലിക്കേഷനുകളിൽ, പ്രാരംഭ ലോഡ് സമയത്തെയും മൊത്തത്തിലുള്ള ഉപയോക്തൃ അനുഭവത്തെയും കാര്യമായി ബാധിക്കും. ഇത് പരിഹരിക്കാനുള്ള ഒരു ശക്തമായ സാങ്കേതികതയാണ് ലേസി ലോഡിംഗ്, പ്രത്യേകിച്ചും കമ്പോണന്റ് കോഡ് സ്പ്ലിറ്റിംഗ്. ഈ ലേഖനം React.lazy, Suspense എന്നിവ ഉപയോഗിച്ച് റിയാക്ട് ലേസി ലോഡിംഗ് മനസ്സിലാക്കുന്നതിനും നടപ്പിലാക്കുന്നതിനുമുള്ള ഒരു സമഗ്രമായ ഗൈഡ് നൽകുന്നു.
എന്താണ് ലേസി ലോഡിംഗും കോഡ് സ്പ്ലിറ്റിംഗും?
ലേസി ലോഡിംഗ്, ഓൺ-ഡിമാൻഡ് ലോഡിംഗ് എന്നും അറിയപ്പെടുന്നു, ഇത് റിസോഴ്സുകൾ (നമ്മുടെ കാര്യത്തിൽ, റിയാക്ട് കമ്പോണന്റുകൾ) യഥാർത്ഥത്തിൽ ആവശ്യമുള്ളപ്പോൾ മാത്രം ലോഡ് ചെയ്യുന്നത് വൈകിപ്പിക്കുന്ന ഒരു സാങ്കേതികതയാണ്. ആപ്ലിക്കേഷൻ്റെ എല്ലാ കോഡുകളും ഒന്നിച്ച് ലോഡ് ചെയ്യുന്നതിനുപകരം, അത്യാവശ്യ ഭാഗങ്ങൾ മാത്രം തുടക്കത്തിൽ ലോഡ് ചെയ്യുകയും, ഉപയോക്താവ് ഒരു പ്രത്യേക റൂട്ടിലേക്ക് പോകുമ്പോഴോ ഒരു പ്രത്യേക കമ്പോണന്റുമായി സംവദിക്കുമ്പോഴോ ശേഷിക്കുന്ന കോഡ് അസിൻക്രണസായി ലോഡ് ചെയ്യുകയും ചെയ്യുന്നു. ഇത് പ്രാരംഭ ബണ്ടിൽ വലുപ്പം ഗണ്യമായി കുറയ്ക്കുകയും ടൈം ടു ഇൻ്ററാക്ടീവ് (TTI) മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു.
കോഡ് സ്പ്ലിറ്റിംഗ് എന്നത് നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ കോഡിനെ ചെറിയ, കൈകാര്യം ചെയ്യാൻ എളുപ്പമുള്ള ഭാഗങ്ങളായി (ബണ്ടിലുകളായി) വിഭജിക്കുന്ന പ്രക്രിയയാണ്. ഈ ബണ്ടിലുകൾ പിന്നീട് സ്വതന്ത്രമായും ആവശ്യാനുസരണം ലോഡ് ചെയ്യാനും കഴിയും. റിയാക്ട് ലേസി ലോഡിംഗ്, കമ്പോണന്റുകൾ ആവശ്യമുള്ളപ്പോൾ മാത്രം ലോഡ് ചെയ്യാൻ കോഡ് സ്പ്ലിറ്റിംഗിനെ പ്രയോജനപ്പെടുത്തുന്നു.
ലേസി ലോഡിംഗിന്റെയും കോഡ് സ്പ്ലിറ്റിംഗിന്റെയും പ്രയോജനങ്ങൾ
- മെച്ചപ്പെട്ട പ്രാരംഭ ലോഡ് സമയം: പ്രാരംഭ ബണ്ടിൽ വലുപ്പം കുറയ്ക്കുന്നതിലൂടെ, ബ്രൗസർ കുറഞ്ഞ ജാവാസ്ക്രിപ്റ്റ് ഡൗൺലോഡ് ചെയ്യുകയും പാഴ്സ് ചെയ്യുകയും ചെയ്യുന്നു, ഇത് വേഗതയേറിയ പേജ് ലോഡ് സമയത്തിന് കാരണമാകുന്നു. വേഗത കുറഞ്ഞ നെറ്റ്വർക്ക് കണക്ഷനുകളോ ഉപകരണങ്ങളോ ഉള്ള ഉപയോക്താക്കൾക്ക് ഇത് വളരെ പ്രധാനമാണ്.
- മെച്ചപ്പെട്ട ഉപയോക്തൃ അനുഭവം: വേഗതയേറിയ ലോഡിംഗ് സമയം കൂടുതൽ പ്രതികരണശേഷിയുള്ളതും ആസ്വാദ്യകരവുമായ ഉപയോക്തൃ അനുഭവത്തിലേക്ക് നയിക്കുന്നു, ഇത് ബൗൺസ് റേറ്റുകൾ കുറയ്ക്കുകയും ഉപയോക്തൃ പങ്കാളിത്തം വർദ്ധിപ്പിക്കുകയും ചെയ്യുന്നു.
- കുറഞ്ഞ റിസോഴ്സ് ഉപഭോഗം: ആവശ്യമായ കോഡ് മാത്രം ലോഡ് ചെയ്യുന്നത് ആപ്ലിക്കേഷൻ്റെ മെമ്മറി ഉപയോഗം കുറയ്ക്കുന്നു, ഇത് മൊബൈൽ ഉപകരണങ്ങൾക്ക് പ്രത്യേകിച്ചും ഗുണകരമാണ്.
- മികച്ച എസ്.ഇ.ഒ (SEO): വേഗതയേറിയ ലോഡിംഗ് സമയമുള്ള വെബ്സൈറ്റുകളെ സെർച്ച് എഞ്ചിനുകൾ അനുകൂലിക്കുന്നു, ഇത് നിങ്ങളുടെ വെബ്സൈറ്റിൻ്റെ സെർച്ച് എഞ്ചിൻ റാങ്കിംഗ് മെച്ചപ്പെടുത്താൻ സാധ്യതയുണ്ട്.
React.lazy, Suspense എന്നിവ ഉപയോഗിച്ച് റിയാക്ട് ലേസി ലോഡിംഗ് നടപ്പിലാക്കുന്നു
React.lazy, Suspense എന്നിവ ഉപയോഗിച്ച് കമ്പോണന്റുകൾ ലേസിയായി ലോഡ് ചെയ്യുന്നതിന് റിയാക്ട് ഒരു ഇൻ-ബിൽറ്റ് സംവിധാനം നൽകുന്നു. React.lazy ഒരു കമ്പോണന്റ് ഡൈനാമിക്കായി ഇമ്പോർട്ടുചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു, അതേസമയം Suspense കമ്പോണന്റ് ലോഡ് ചെയ്യുമ്പോൾ ഒരു ഫാൾബാക്ക് യുഐ (UI) പ്രദർശിപ്പിക്കാനുള്ള ഒരു മാർഗ്ഗം നൽകുന്നു.
ഘട്ടം 1: React.lazy ഉപയോഗിച്ചുള്ള ഡൈനാമിക് ഇമ്പോർട്ടുകൾ
React.lazy, import() എന്ന് വിളിക്കുന്ന ഒരു ഫംഗ്ഷൻ എടുക്കുന്നു. import() ഫംഗ്ഷൻ ഒരു ഡൈനാമിക് ഇമ്പോർട്ടാണ്. ഇത് ഒരു പ്രോമിസ് (Promise) തിരികെ നൽകുന്നു, അത് നിങ്ങൾ ലേസി ലോഡ് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന കമ്പോണന്റ് അടങ്ങിയ ഒരു മൊഡ്യൂളിലേക്ക് റിസോൾവ് ചെയ്യുന്നു.
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
ഈ ഉദാഹരണത്തിൽ, MyComponent റെൻഡർ ചെയ്യുന്നത് വരെ ലോഡ് ചെയ്യപ്പെടുന്നില്ല. import('./MyComponent') എന്ന സ്റ്റേറ്റ്മെൻ്റ് ./MyComponent ഫയലിൽ നിന്ന് കമ്പോണന്റ് ഡൈനാമിക്കായി ഇമ്പോർട്ടുചെയ്യുന്നു. പാത നിലവിലെ ഫയലിന് ആപേക്ഷികമാണെന്ന് ശ്രദ്ധിക്കുക.
ഘട്ടം 2: ലോഡിംഗ് സ്റ്റേറ്റുകൾ കൈകാര്യം ചെയ്യാൻ Suspense ഉപയോഗിക്കുന്നു
ലേസി ലോഡിംഗിൽ കമ്പോണന്റുകളുടെ അസിൻക്രണസ് ലോഡിംഗ് ഉൾപ്പെടുന്നതിനാൽ, ലോഡിംഗ് സ്റ്റേറ്റ് കൈകാര്യം ചെയ്യാനും കമ്പോണന്റ് ലഭ്യമാകുന്നതുവരെ ഒരു ഫാൾബാക്ക് യുഐ പ്രദർശിപ്പിക്കാനും നിങ്ങൾക്ക് ഒരു മാർഗം ആവശ്യമാണ്. ഇവിടെയാണ് Suspense വരുന്നത്. Suspense എന്നത് ഒരു റിയാക്ട് കമ്പോണന്റാണ്, അത് അതിൻ്റെ ചിൽഡ്രൻ റെൻഡർ ചെയ്യാൻ തയ്യാറാകുന്നതുവരെ "സസ്പെൻഡ്" ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഇതിന് ഒരു fallback പ്രോപ്പ് ഉണ്ട്, ഇത് ചിൽഡ്രൻ ലോഡ് ചെയ്യുമ്പോൾ റെൻഡർ ചെയ്യേണ്ട യുഐ വ്യക്തമാക്കുന്നു.
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function App() {
return (
Loading... ഈ ഉദാഹരണത്തിൽ, Suspense കമ്പോണന്റ് MyComponent-നെ പൊതിയുന്നു. MyComponent ലോഡ് ചെയ്യുമ്പോൾ, fallback പ്രോപ്പ് () റെൻഡർ ചെയ്യപ്പെടും. MyComponent ലോഡ് ചെയ്തുകഴിഞ്ഞാൽ, അത് ഫാൾബാക്ക് യുഐ-യെ മാറ്റിസ്ഥാപിക്കും.
ഉദാഹരണം: റിയാക്ട് റൂട്ടർ ആപ്ലിക്കേഷനിൽ ഒരു റൂട്ട് ലേസി ലോഡ് ചെയ്യുന്നു
റിയാക്ട് റൂട്ടർ ആപ്ലിക്കേഷനിലെ റൂട്ടുകൾക്ക് ലേസി ലോഡിംഗ് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ മുഴുവൻ പേജുകളോ ഭാഗങ്ങളോ നിങ്ങൾക്ക് ലേസി ലോഡ് ചെയ്യാൻ കഴിയും, ഇത് നിങ്ങളുടെ വെബ്സൈറ്റിൻ്റെ പ്രാരംഭ ലോഡ് സമയം മെച്ചപ്പെടുത്തുന്നു.
import React, { lazy, Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
const Home = lazy(() => import('./pages/Home'));
const About = lazy(() => import('./pages/About'));
const Contact = lazy(() => import('./pages/Contact'));
function App() {
return (
Loading...